/**
 *培训动态表单  fields字段 接口 ; // Train Sign Controller
 **/
export class TrainCourseSignupFields {
  courseId: number;  //  课程ID
  fieldName: string;  //  字段Name
  fieldText: string;  //  字段Text
  id: number;  //  主键标识
  isNeed: number;  //  是否是必填
  order: string;  //
  sort: string;  //
}

/**
 *培训动态表单  接口 ; // Train Sign Controller
 **/
export class TrainSignFormRespVO {
  dictCountries: Array<DictCountry>;
  fields: Array<TrainCourseSignupFields>;  //  报名属性
}

/**
 *培训动态表单  dictCountries字段 接口 ; // Train Sign Controller
 **/
export class DictCountry {
  countryChineseName: string;  //  中文名
  countryCode: string;  //  国家编码
  countryEnglishName: string;  //  英文名
  createTime: string;  //  创建时间
  deleteFlag: string;  //  删除标识
  id: number;  //  ID
  langType: string;  //  语言
  order: string;
  pinYin: string;  //  中文拼音
  remarks: string;  //  备注
  sort: string;  //
  sortValue: string;  //  排序
  updateTime: string;  //  修改时间
}

/* 学生 */
export class TrainStudent {
  age: number; // 年龄
  address: string;  //   地址
  awardsItem: string;  //   所获奖项
  birthday: string;  //   生日
  city: string;  //   市
  createTime: string;
  createdId: string;
  email: string;  //   邮箱
  headPicture: string;  //   头像
  height: number;  //   身高CM
  id: number;
  idNo: string;  //   证件号码
  idType: number;  //   证件类型
  locationCityId: number;  //   所在地市Id
  locationProvinceId: number;  //   所在地省Id
  modifyId: string;
  modifyTime: string;
  name: string;  //   姓名
  nameSpell: string;  //   姓名拼音
  nation: string;  //   民族
  nationality: string;  //   国籍
  orgUserId: string;  //   组织ID
  parentMobile: string;  //   家长手机号
  parentName: string;  //   家长姓名
  province: string;  //   省
  remark: string;  //   备注
  school: string;  //   就读学校
  schoolId: number;  //   校区Id
  sex: number;  //   性别
  sources: number;  //   报名来源
  sportItem: string;  //   运动项目
  status: number;  //   删除标记
  trait: string;  //   专业特点
  weight: number;  //   体重KG
  armReach: number; // 臂展
  standingReach: number; // 站立摸高
  testAgeId: number; // (integer, optional): 测试年龄组id ,
  testAgeName: string; // (string, optional): 测试年龄组名称 ,
}

/* 课时 */
export class StudentScheduleCourseVO {
  beginDate: string;  //  上课时间
  id: number;  //  学员课时ID
  modifyTime: string;  //  编辑的时间
  name: string;  //  学员名称
  status: number;  //  课时状态
  studentId: number;  //  学员ID
  freezeStatus: number; // 是否冻结：1已经冻结0未冻结
}

/* 点评详情 */
export class TrainSubjectCommentVO {
  commentFiles: Array<string>;  //  点评附件
  content: string;  //  点评内容
  subjectName: string;  //  课时名称
  teacher: any;  //  教练
}

/* 销售数据统计 */
export class SaleRankVO {
  dealCount: number;  //  成交数量
  followCount: number;  //  跟进数量
  lastFollowTime: string;  //  最后跟进时间
  newAddCount: number;  //  新增数量
  orgUserId: string;  //  机构用户id
  rankNO: number;  //  排名
  saleName: string;  //  销售人员名称
  saleUserId: string;  //  销售用户id
  totalCount: number;  //  总数量
  trialCount: number;  //  试课数量
}


/* 班级 */
export class TrainStudentClassCourseVO {
  beginTime: string;  //  上课开始时间
  classId: number;  //  班级Id
  className: string;  //  班级名称
  classesId: string;  //  班别标识
  classesName: string;  //  班别名称
  courseId: number;  //  课程ID
  courseName: string;  //  课程名称
  endTime: string;  //  上课结束时间
  properties: number;  //  课程性质（0：专业课，1：综合课，2：次课）
  schooId: number;  //  校区ID
  schoolName: string;  //  校区名称
  signupFee: number;  //  报名费用
  startStatus: number;  //  开课状态(0：未上课，1：已上课，2：已结束）
  studentId: number;  //  学生Id
  studentName: string;  //  学生名称
  weekCodes: string;  //  上课周期
}

// /* 获取销售人员的客户列表 */
// export class TrainSaleStudentRespVO {
//   address: string;  //  详细地址
//   cityName: string;  //  市名称
//   createTime: string;
//   id: number;
//   name: string;  //  学员姓名
//   orgUserId: string;
//   origine: number;
//   parentMobile: string;  //  家長手机
//   provinceName: string;  //  省名称
//   saleUserId: string;
//   schoolId: number;
//   schoolName: string;
//   sex: number;  //  學員性別
//   studentId: number;
//   studentStatus: number;
//   updateTime: string;
// }


//   培训统计首页列表item
export class StudentCallNameResultVO {
  classId: number; //  班级ID ;
  className: string; //  班级名称 ;
  classScheduleId: number; //  班级课时ID ;
  properties: number; //  课程类型 0：专业课，1：综合课，2：次课 ;
  schoolId: number; //  校区ID ;
  schoolName: string; //  校区名称 ;
  signAll: number; //  应签到人数 ;
  signNum: number; //  实签人数 ;
  subjectName: string; //  学科名称 ;
  teacherId: number; //  教练ID
}

//   培训点名统计
export class StudentCallNameCountResult {
  percentum ?: number;   //  百分比;产品说取整数
  signAll ?: number;   //  总签到人数
  signNum ?: number;   //  实际签到人数
}


/**
 *培训统计列表  接口 ;/v1/user/train/findLessonCountByPage    //  Sign Controller
 **/
// export class CommonPageVo {
//   endRow ?: number;   //   结束行数
//   hasNextPage ?: boolean;   //   是否有下一页
//   list: <T>;   //  分页数据
//   page ?: number;   //   页码
//   pages ?: number;   //   总共页面
//   rows ?: number;   //   每页记录数
//   startRow ?: number;   //   开始行数
//   total ?: number;   //   总记录数
// }

/**
 *培训统计列表  接口 list字段 ;/v1/user/train/findLessonCountByPage    //  Sign Controller
 **/
export class StudentLessonResultVO {
  classId: number; //  班级ID ;
  className: string; //  班级名称 ;
  classScheduleId: number; //  班级课时ID ;
  properties: number; //  课程类型 0：专业课，1：综合课，2：次课 ;
  schoolId: number; //  校区ID ;
  schoolName: string; //  校区名称 ;
  signAll: number; //  应签到人数 ;
  signNum: number; //  实签人数 ;
  subjectName: string; //  学科名称 ;
  teacherId: number; //  教练ID
}


export class TrainClassTeacherScheduleVO {
  classScheduleId: number; //  班级课时ID
  classesName: string; //  班别名称
  endTime: string; //  结束时间
  name: string; //  班级名称
  properties: number; //  课程类型0：专业课，1：综合课，2：次课
  schoolId: number; //  学校ID
  schooleName: string; //  学校名称
  teacherId: number; // 教师ID
  startTime: string; //  开始时间
}


/*根据班级ID获取教学计划*/
export class TrainClassroomScheme {
  analysis: string; // 学情分析
  classId: number; // 班级Id
  createId: string;
  createTime: string;
  id: number; //  主键标识
  measure: string; // 教学措施
  modifyId: string;
  modifyTime: string;
  orgUserId: string;
  target: string; // 学习目标
}

/*根据班级ID获取教学目标*/
export class TrainClassDrillOutline {
  classId: number;//班级Id
  createId: string;
  createTime: string;
  id: number;
  modifyId: string;
  modifyTime: string;
  objective: string//教学目标
}

/*根据班级ID获取 班级课时列表*/
export class TrainClassScheduleVO {
  address: string; //
  addressId: number; // : 上课地点ID
  beginDate: string; // : 上课日期
  classId: number; // : 班级ID
  courseId: number; // : 课程ID
  courseItemId: number; // : 课程销售ID
  createTime: string; //
  createdId: string; //
  endTime: string; // : 下课时间
  finishRate: number; // : 完成百分比
  id: number; //
  isEdited: boolean; // : 是否已经编辑
  modifyId: string; //
  modifyTime: string; //
  order: string; //
  replaceBeginDate: string; // : 改期时间
  replaceEndTime: string; // : 改期下课时间
  replaceStartTime: string; // : 改期上课时间
  replaceTeacherId: number; // : 代课老师ID
  replaceWeekCode: number; // : 改期周几
  scheduleType: number; // : 课时类型 类型（0正常，1改期，2：代课）
  schoolId: number; // : 校区ID
  sort: string; //
  startTime: string; // : 上课开始时间
  status: number; // : 课时状态（0：删除，1：正常）
  subjectName: string; // : 学科名称
  topicName: string; // 主题名称。主题名称不为空时，展示主题名称，否则，展示‘学科名称'
  teacherId: number; // : 老师Id
  teacherName: string; // : 老师名称
  weekCode: number; // : 周几
}


export class TrainTeachInfoVo {
  area: string; // 场地;json格式 key:value。中文名字： ;
  classScheduleId: number; // 课时ID ;
  createId: string; //
  createTime: string; //
  density: number; // 练习密度 ;
  equipment: string; // 器材，JSON格式 key:value ;
  focusField: string; // 重点领域;多个“;” 隔开 ;
  heartRate: number; // 平均心率 ;
  // id: number; //
  mentalLoad: number; // 心理负荷 ;
  // modifyId: string; //
  // modifyTime: string; //
  // orgUserId: string; //
  // summary: string; // 课后总结 ;
  target: string; // 教学目标 ;
  // teacherName: string; // 教练名称

  // 新的模型
  createdId: string; // ,
  createdTime: string; // ,
  id: number; //  主键ID，修改时不允许为空 ,
  info: string; // : 教学信息JSON字符串。 ,
  modifyId: string; // ,
  modifyTime: string; // ,
  orgUserId: string; // ,
  scheduleId: number; //  课时ID ,
  subjectName: string; // : 课时名称 ,
  summary: string; // : 课后总结JSON字符串 ,
  teacherName: string; // : 教练名称
}

export class TrainTeachProcess {
  classScheduleId: number; // 班级课时Id ;
  contentRequirement: string; // 教学内容与要求 ;
  createId: string; //
  createTime: string; //
  // deleteFlag: number; //
  duration: number; // 预计时长 ;
  // id: number; //
  measureWay: string; // 教学方法与措施 ;
  // modifyId: string; //
  // modifyTime: string; //
  // orgUserId: string; //
  organizingForms: number; // 组织方式 ;
  questionWay: string; // 预计问题与方法 ;
  trainingTimes: number; // 训练次数

  // 新的模型
  createdId: string; //
  createdTime: string; //
  deleteFlag: number; //  删除状态 ,
  id: number; //  主键ID，修改时不允许为空 ,
  modifyId: string; //
  modifyTime: string; //
  orgUserId: string; //
  processInfo: string; // 教学过程JSON字符 ,
  scheduleId: number; //  课时ID
}

export class TrainCommentAndFileVO {
  commentType: number;
  content: string;
  courseId: number;
  createtime: string;
  deletestatus: number;
  fileList: Array<TrainScheduleCommentFile>;
  id: number;
  order: string;
  parentMobile: string;
  readstatus: number;
  sort: string;
  studentId: number;
  studentName: string;
  studentScheduleId: number;
  teacherId: number;
  teacherName: string;
  updatetime: string;
}

export class TrainScheduleCommentFile {
  commentId: number;
  createtime: string;
  filePath: string;
  fileType: number;
  id: number;
}

export class StudentScheduleCourseWrapVO {
  pageVo: any;
  processor: boolean; //  是可以操作;如果课程不是当天的就不能操作
}

export class ClassForStudentVO {
  className: string;
  classRoomId: number;
  courseStaus: number;
  courseType: number;
  courseId?: number;
  coursesName: string;
}

export class TrainSchoolCourseListScheduleVo {
  time: string; // 时间段 (08:00~22:00) ,
  weekList: Array<TrainSchoolWeekScheduleVo>;
}

export class TrainSchoolWeekScheduleVo {
  beginDate: string; // 日期 ,
  courseList: Array<TrainSchoolCourseScheduleVo>;
  weekCode: number; // 周几
}

export class TrainSchoolCourseScheduleVo {
  address: string; // 上课地点 ,
  className: string; // 班级名称 ,
  classesName: string; // 班别名称 ,
  courseImg: string; // 课程图片 ,
  courseName: string; // 课程名称 ,
  courseProperties: number; // 课程性质（0：专业课，1：综合课，2：次课） ,
  endTime: string; // 下课时间(HH:ss) ,
  // expireType: number; // 学生购买次课对应的有效期类型。0：有效期限制，1：无限期 ,
  expiresInfo: string; // 有效期描述(例如:2018-01-01~2018-02-02) ,
  // expiresEndTime: string; // 学生购买次课有效期结束时间 ,
  // expiresStartTime: string; // 学生购买次课有效期开始时间 ,
  lessonStatus: number; // 补课状态（0：未补课，1：已补课） ,
  lessonNum: number; // 课时序数
  remainTimes: number; // 剩余次数/天数 ,
  remainUnit: string; // 剩余次数/天数单位（次, 月, 月+, 天） ,
  scheduleType: number; // 是否请假（类型（0正常，1改期，2：代课）） ,
  // overTotal: number; // 学生购买次课的剩余次数(无限期的状态对应次数,有效期对应天数，天数=expiresEndTime-当前时间) ,
  schoolName: string; // 学校名称 ,
  startTime: string; // 上课时间(HH:ss) ,
  status: number; // 状态（0未签到，1已签到，2：缺勤，3：请假） ,
  subjectName: string; // 学科名称 ,
  teacherName: string; // 教练名称
  // classStatus: number; // 课程状态，2是赠课 3 是 冻结
  freeze: boolean; // true：课程冻结；false：未冻结
  usedTimes: number; // 已销课次数
}

export class TrainTeacherVO {
  address: string; //地址
  age: number;
  birthday: string; //生日 ;
  certificateImages?: Array<string>;
  certificateName: string;//证书名称
  city?: string;
  cityId: number; //所在市Id ;
  classNum: number;
  country: string; //国籍 ;
  createTime: string; //创建时间 ;
  createdId: string; //创建人ID ;
  deletable: number;
  id: number;
  idNo: string; //证件号码 ;
  idType: number; //证件类型：1 身份证， 2 护照， 3 其他 ;
  intro: string; //简介 ;
  mobile: string; //手机号 ;
  modifyId: string; //更新人ID ;
  modifyTime: string; //更新时间 ;
  name: string; //姓名 ;
  nameSpell?: string;
  nationality: string; //国籍编号 ;
  needCancelLeave: number;
  order?: string;
  orgUserId: string; //组织ID ;
  photo?: string;
  province?: string;
  provinceId: number; //所在省Id ;
  remark: string; //备注 ;
  repCourTeacherFlag?: boolean; //是否是代课教练：true 是 false 不是 ;
  sex: number; //性别（1男，2女，3保密） ;
  sort?: string;
  status: number; //删除标识 0 正常，1 删除 ;
  studentNum: number;
  userId: string; //用户Id
  teachYear: number; //执教年限
  orgAuthority: string; //机构认证
}

export class TrainSubjectCommentListVO {
  commentState: number;// 课时点评状态,0:未点评、1:已点评 ,
  courseName: string;//课程名称 ,
  lessonStatus: number;//补课状态（0：未补课，1：已补课） ,
  readStatus: number;//点评已读状态,0:未读、1:已读 ,
  scheduleId: number;//课时id ,
  state: number;// 状态（0未签到[未销课]，1已签到[已销课]，2：缺勤，3：请假[次课没有缺勤和请假的状态]） ,
  subjectName: string;//课时名称
  beginDate: string;//上课日期 YYYY-MM-DD ,
  endTime: string;//下课时间 HH:mm:ss ,
  startTime: string;//上课时间 HH:mm:ss ,
}

export class TrainCourseTeachTemplate {
  createId: string; //  创建人id ,
  createTime: string; //  创建时间 ,
  deleteFlag: string; //  删除标志,1删除，0未删除 ,
  id: string; //  主键ID ,
  isDefault: string; //  是否默认模板，1默认，0非默认 ,
  modifyId: string; //  修改人id ,
  modifyTime: string; //  修改时间 ,
  order: string;
  orgUserId: string; //  组织用户id ,
  remark: string; //  备注 ,
  sort: string;
  teachInfo: string; //  教学信息 ,
  teachProcess: string; //  教学过程 ,
  teachSummary: string; //  课后总结 ,
  templateName: string; //  模板名称
}

export class StudentBodyDataVO {
  createTime: string; // ,
  height: number; // : 身高 ,
  id: number; // ,
  orgUserId: string; // ,
  recordAge: number; // : 学员年龄 ,
  recordDate: string; // : 记录日期 ,
  standingReach: number; // : 站立摸高 ,
  studentId: number; // : 学员id ,
  updateTime: string; // ,
  weight: number; // : 体重 ,
  wingspan: number; // : 臂展
}

export class BodyDataLatestVO {
  bodyData: TrainStudentBodyData;//身体数据详情 ,
  bodyDataCategoryVO: TrainOrgBodyDataCategoryVO //身体数据显示项
}

export class TrainStudentBodyData {
  categoryId: number; //身体数据类别id ,
  categoryName: string; //类别名称 ,
  createTime: string;
  dataValue: number; //身体数据值 ,
  id: number;
  orgUserId: string;
  recordDate: string;//记录日期 ,
  sportType: string; //运动类型，后续扩展用 ,
  studentId: number; //学员id ,
  updateTime: string;
}

export class TrainOrgBodyDataCategoryVO {
  categoryId: number; //身体数据类别id ,
  categoryName: string; //类别名称 ,
  iconUrl: string; //图标地址 ,
  id: number; //机构，身体数据类别映射ID ,
  maxValue: number; //类别对应最大值 ,
  minValue: number; //类别对应最小值 ,
  echartSection: number; //区间个数
  orgUserId: string; //组织ID ,
  sportType: string; //运动类型：足球：3001，篮球：3002，羽毛球：3003，网球：3004，乒乓球：3005 ,
  unitName: string; //、最小值单位
}

export class TrainTactics {
  content: string; // 战术板内容（JSON) ,
  createId: string;
  createTime: string;
  deleteFlag: number;
  id: number;
  modifyId: string;
  modifyTime: string;
  orgUserId: string;
  sportTypeId: number; // 运动类型ID。新增时不为空 ,
  tacticName: string; // 战术板名称。新增时不为空 ,
  tacticTypeId: number; // 战术板类型Id。新增时不为空
}

// 查看训练模板详情
export class TrainSchedulePlanVO {
  beginTime: string; // 上课开始时间 ,
  classDate: string; // 上课日期 ,
  endTime: string; // 下课时间 ,
  listTrainPlan: Array<TrainPlanFullInfoVO>; // 训练计划列表 ,
  schollName: string; // 上课校区
}

export class TrainPlanFullInfoVO {
  createId: string;
  createTime: string;
  id: number;
  imageUrl: string;
  sportType: number;
  topic: string;
  trainingAim: string;
  trainingDuration: string;
  trainingName: string;
}

export class StudentTestScoreRadarChartVO {
  latestDate: string;//最新更新日期
  testModels: Array<TestModel> //测试项集合
}

export class TestModel {
  modeName: string; //测试项 ,
  totalAbilityScore: number; //测试项能力值总成绩
}

export class StudentTestLastScoreWrapVO {
  lastScore: Array<StudentTestLastScoreVO>; // (Array[StudentTestLastScoreVO], optional): 测试方法名称列表 ,
  testModeId: number; // (integer, optional): 测试模块ID ,
  testModeName: string; // (string, optional): 测试模块名称
}

export class StudentTestLastScoreVO {
  id: number;//测试成绩主表ID ,
  scoreId: number;// 主表ID ,
  testAbilityScore: number; // 能力值 ,
  testBaseScore: number;// 测试成绩基础分 ,
  testBaseScoreLevel: string; // 测试成绩基础分等级A+,A,B,C,D ,
  testDate: string; // 录入时间 ,
  testMethodId: number; // 测试方法id ,
  testMethodName: string;// 测试方法名称 ,
  testModeId: number;//测试模块ID ,
  testModeName: number;//测试模块名称 ,
  testModeNameDesc: string; // 测试模型的描述 ,
  testScore: number; // 测试成绩(包含主要成绩和加减分项) ,
  testScoreDesc: string; // 测试成绩描述 ,
  testScoreLevel: string; // 成绩评级(A+,A,B,C,D) ,
  testScoreType: number;//测试成绩类型：0代表主观题(testBaseScoreLevel)，1代表非主观题(testScore)
}

export class StudentTestAbilityScoreVO {
  abilityScore: number; //(integer, optional): 能力值加减分 ,
  testDate: string; //(string, optional): 测试日期 ,
  testResult: number; // (number, optional): 测试结果 ,
  testResultDesc: string; // (string, optional): 测试结果描述 ,
  testScoreLevel: string; // (string, optional): 测试结果级别
  testBaseScoreLevel: string; // (string, optional): 测试成绩基础分等级（A+,A,B,C,D）,主观题展示此字段 ,
  testMethodName: string; // (string, optional): 测试方法名称 ,
  testScoreType: number; // (integer, optional): 测试成绩类型：0代表主观题，1代表非主观题
}


export class StudentTestAbilityScoreChartVO {
  abilityCummulation: number; // (integer, optional): 能力值积累 ,
  testDate: string; // (string, optional): 测试日期
}

export class TestScoreStandardResultVO {
  standardList: Array<TestScoreStandardVO>; //评分标准列表 ,
  testDesc: string; // (string, optional): 测试项说明
}

export class TestScoreStandardVO {
  id: number; // (integer, optional): ID ,
  itemId: number; // (integer, optional): 测试项ID ,
  maxValue: number; // (number, optional): 测试结果最大值 ,
  minValue: number; // (number, optional): 测试结果最小值 ,
  rangeDesc: string; // (string, optional): 区间描述 ,
  symbol: string; // (string, optional): 符号（大于，大于等于，小于，小于等于 ,
  testGrade: string; // (string, optional): 对应等级 ,
  testScore: number; // (integer, optional): 对应成绩
}

export class TrainAgeDictionarie {
  ageType: string; // (string, optional),
  createTime: string; // (string, optional),
  id: number; // (integer, optional),
  maxAge: number; // (integer, optional),
  minAge: number; // (integer, optional),
  orgUserId: string; // (string, optional),
  updateTime: string; // (string, optional)
}

export class TrainTestItemScoreDetailVO {
  categoryList: Array<TrainTestCategoryVO>
}

export class TrainTestCategoryVO {
  categoryName: string; // (string, optional): 测试项中文名称 ,
  categoryNameEn: string; // (string, optional): 测试项英文名称 ,
  createTime: string; // (string, optional): 创建时间 ,
  id: number; // (integer, optional): 测试项Id ,
  orgUserId: string; // (string, optional): 组织ID，机构自定义时使用 ,
  remark: string; // (string, optional): 备注 ,
  sportType: string; // (string, optional): 运动类型 3002篮球 ,
  testItem: TrainTestItem;// (TrainTestItem, optional),
  updateTime: string; // (string, optional): 更新时间
}

export class TrainTestItem {
  ageDictionarieId: number; // (integer, optional): 年龄组Id ,
  categoryId: number; // (integer, optional): 测试项Id ,
  createTime: string; // (string, optional): 创建时间 ,
  id: number; // (integer, optional): 测试内容Id ,
  itemId: number; // (integer, optional),
  orgUserId: string; // (string, optional): 组织Id ,
  ruleId: string; // (string, optional): 规则Id ,
  testContent: string; // (string, optional): 测试内容 ,
  testRemark: string; // (string, optional): 备注 ,
  testScoreType: number; // (integer, optional): 测试成绩类型：0代表主观题，1代表非主观题 ,
  trainStudentTestScoreDetail: TrainStudentTestScoreDetail; //  (TrainStudentTestScoreDetail, optional),
  unitName: string; // (string, optional): 单位 ,
  updateTime: string; // (string, optional)
}

// 查询学生 历史成绩
export class TrainStudentTestScoreDetail {
  id: number;
  inputUserId: string;
  parentId: number;
  scoreId: number;
  testAbilityScore: number;
  testBaseScore: number;
  testBaseScoreLevel: string;
  testDate: string;
  testMethodId: number;
  testScore: number;
  testScoreDesc: string;
  testScoreLevel: string;
  testScoreType: number;
  testTotalScore: number;
}

// 查询测试成绩详情
export class StudentTestScoreDetailVO {
  extraTestScores: Array<ExtraTestScore>; // 额外加分项 ,
  id: number;
  testBaseScore: number; // 测试成绩基础分 ,
  testDate: string; // 测试日期 ,
  testScore: number; // 测试成绩 ,
  testScoreDesc: string; // 测试成绩描述（单位：秒、次） ,
  testScoreLevel: string; // 测试成绩等级（A+,A,B,C,D） ,
  testTotalScore: number; // 测试成绩最终得分
}

export class ExtraTestScore {
  testMethodId: number; // 测试额外加减分项id ,
  testName: string;
  testScore: number; // 测试额外加减分项分数 ,
  testScoreDesc: string; // 测试额外加减分项分数单位
}

export class StudentTestScoreLineChartVO {
  currentDayAvgScores: Array<StudentTestScoreSimple>; // (, optional): 所有学员当日平均成绩 ,
  currentDayScores: Array<StudentTestScoreSimple>; //(Array[], optional): 学员最近7次成绩 ,
  regionBestScore: number; // (number, optional): 最近7次的最好成绩 ,
  studentStestScoreSummary: StudentStestScoreSummary; // (StudentStestScoreSummary, optional): 成绩总结区域
  testScoreSort: number; // (integer, optional): 测试成绩排序规则,0：倒序(次)，1：顺序(分)
}

export class StudentTestScoreSimple {
  testBaseScoreLevel: string; //(string, optional): 测试成绩基础分等级（A+,A,B,C,D） ,
  testDate: string; // (string, optional): 测试日期 ,
  testModeId: number; // (integer, optional): 测试模块 ,
  testScore: number; // (number, optional): 测试成绩
  testScoreDesc: string; // (string, optional): 测试成绩单位描述（次，秒，分） ,
  testScoreType: number; // (integer, optional): 测试成绩类型：0代表主观题，1代表非主观题
}

export class StudentStestScoreSummary {
  bestScore: number; // (number, optional): 最近7次的最好成绩 ,
  bestWorstScoreDiff: number; // (number, optional): 最近7次最好成绩与最差成绩对比 ,
  firstAllAvgScoreDiff: number; // (number, optional): 最近1次成绩与最近一次所有学员成绩平均值对比 ,
  firstBestScoreDiff: number; // (number, optional): 最近1次成绩与最近7次中的最好成绩对比
  goodCount: string; // (integer, optional): 精良次数 ,
  knowledgeCount: number; // (integer, optional): 掌握次数 ,
  splendidCount: number; // (integer, optional): 卓越次数 ,
  superiorCount: number; // (integer, optional): 精良次数 ,
}
